# 写一个管理商品的程序，商品文件格式在数据库里面
# 提供商品的增删改查功能
# choice = input('请输入你的选择:1、查看商品 2、新增商品 3、修改商品 4、删除商品')
# 1、查看商品，输入商品名称，print单个商品的信息，价格、数量，输入all，查看所有商品
# 2、新增商品，输入商品名称、数量、价格，数量是大于0的整数，价格必须是大于0的数值，
# 如果商品存在，无法添加
# 3、修改商品，输入商品名称、数量、价格，商品存在才可以修改 数量是大于0的整数，价格必须是大于0的数值，
# 4、输入商品名称，如果存在，删除

import pymysql

host = '118.24.3.40'  # ip
user = 'jxz'  # 用户名
password = '123456'  # 密码
db = 'jxz'  # 数据库名
port = 3306  # 端口号

connect = pymysql.connect(host=host, user=user,
                          password=password,
                          port=port, db=db,
                          autocommit=True  # 自动提交
                          )  # 连接数据库
cur = connect.cursor(pymysql.cursors.DictCursor)  # 建立游标

def is_digit(number):
    s = str(number)
    if s.isdigit():
        if int(s) > 0:
            return True

def is_price(price):  #>0的整数和小数都可以 #1.7
    s = str(price)
    if is_digit(s):
        return True
    else:
        if s.count('.') == 1:  # 1.3
            left, right = s.split('.')
            if left.isdigit() and right.isdigit():  # 正小数 #0.0
                if float(s)>0:
                    return True


def show_product():
    product_name = input('请输入商品名称:').strip()
    if product_name:
        cur.execute('select * from tmz_gj_products where name ='+"'{product_name}'.format(product_name)")
        result = cur.fetchone(product_name)
        if product_name == 'all':
            cur.execute('select * from tmz_gj_products')
            result_all = cur.fetchall()
            print(result_all)
        elif product_name not in cur.fetchall():
            print('商品不存在')
        else:
            print(result)
    else:
        print('不能为空')

def add_product():
    product_name = input('请输入商品名称:').strip()
    price = input('请输入商品价格:').strip()
    count = input('请输入商品数量:').strip()

    cur.execute('select * from students')
    result = cur.fetchall()#保存查询出的结果

    products = [products for products in result]

    for row,i in enumerate(products):
        for col,value in enumerate(i):
            products_list=products[row][0]
            print(products_list)
    if product_name and price and count:
        if is_price(price) and is_digit(count):
            if product_name not in products_list:
                products[product_name] = {"count":count,"price":price}
                cur.execute('insert into students values(produce_name,count,price)')
                print('商品新增成功！')
            else:
                print('商品已经存在')
        else:
            print('价格/数量不合法')
    else:
        print('不能为空')


def modify_product():
    product_name = input('请输入商品名称:').strip()
    # new_product_name = input('请输入新的商品名称:').strip()
    price = input('请输入商品价格:').strip()
    count = input('请输入商品数量:').strip()

    cur.execute('select * from students')
    result = cur.fetchall()  # 保存查询出的结果
    products = [products for products in result]

    for row, i in enumerate(products):
        for col, value in enumerate(i):
            products_list = products[row][0]
            print(products_list)

    if product_name and price and count:
        if is_price(price) and is_digit(count):
            if product_name in products:
                cur.execute('update students set price='+price,+'count = '+count +'where name='+product_name)
                print('商品修改成功！')
            else:
                print('商品不存在')
        else:
            print('价格/数量不合法')
    else:
        print('不能为空')


def delete_product():
    product_name = input('请输入商品名称:').strip()
    if product_name:
        cur.execute('delete * from students where name = '+product_name)
        result = cur.fetchall()  # 保存查询出的结果
        products = [products for products in result]

        for row, i in enumerate(products):
            for col, value in enumerate(i):
                products_list = products[row][0]
                print(products_list)

        if product_name not in products_list:
            print('商品不存在')
        else:
            products.pop(product_name)

    else:
        print('不能为空')


choice = input('1、查看商品 2、新增 3、修改  4、删除： ')

func_map = {'1':show_product,'2':add_product,'3':modify_product,'4':delete_product}#
if choice in func_map:
    func_map[choice]()
else:
    print('请输入正确的选项！')

# if choice == '1':
#     show_product()
# elif choice == '2':
#     add_product()